﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CapaEntidades;
using CapaNegocio;
using System.Data;
namespace SisHotel
{
    public partial class frmMantenedorTipoHabitacion : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CrearTabla();
                CargarGridView();
            }
        }


        #region metodos
        private void limpiarControles()
        {
            lblID.Text = "0";
            txtNombre.Text = "";
            txtPrecio.Text = "";
            txtDescripcion.Text = "";
        }
        private void CargarGridView()
        {
            DataTable datos = (DataTable)Session["MantenedorTipoHabitacion"];
            gvDatos.DataSource = datos;
            gvDatos.DataBind();
            //gvDatos.DataSource = negTipoHabitacion.Instancia.ListarTipoHabitacion();
            //gvDatos.DataBind();
        }
        private void CrearTabla()
        {
            try
            {
                //crear estructura de TipoHabitacion
                DataTable dt = new DataTable();
                dt.Columns.Add("IDTIPOHABITACION", Type.GetType("System.Int32"));
                dt.Columns.Add("NOMBRETIPOHAB", Type.GetType("System.String"));
                dt.Columns.Add("DESCRIPCION", Type.GetType("System.String"));
                dt.Columns.Add("PRECIO", Type.GetType("System.Double"));
                dt.Columns.Add("IMAGEN", Type.GetType("System.String"));
                dt.Columns.Add("TIPOEDICION", Type.GetType("System.Int32"));
                List<entTipoHabitacion> Lista = negTipoHabitacion.Instancia.ListarTipoHabitacion();
                for (int i = 0; i < Lista.Count; i++)
                {
                    DataRow r = dt.NewRow();
                    r["IDTIPOHABITACION"] = Lista[i].IdTipoHabitacion;
                    r["NOMBRETIPOHAB"] = Lista[i].NombreTipoHab;
                    r["DESCRIPCION"] = Lista[i].Descripcion;
                    r["PRECIO"] = Lista[i].Precio;
                    r["IMAGEN"] = Lista[i].Imagen;
                    r["TIPOEDICION"] = 0;
                    dt.Rows.Add(r);
                }
                Session["MantenedorTipoHabitacion"] = dt;
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.ToString();
            }
        }

        #endregion

        #region botones
        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            lblMensaje.Text = "";
            limpiarControles();
        }
        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text.Trim() == "") { txtNombre.Focus(); return; }
            if (txtDescripcion.Text.Trim() == "") { txtDescripcion.Focus(); return; }
            if (txtPrecio.Text.Trim() == "") { txtPrecio.Focus(); return; }

            DataTable dt = (DataTable)Session["MantenedorTipoHabitacion"];
            if (Convert.ToInt16(lblID.Text) != 0)
            {
                int id = Convert.ToInt16(lblID.Text);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (Convert.ToInt16(dt.Rows[i][0].ToString()) == id)
                    {
                        dt.Rows[i][1] = txtNombre.Text;
                        dt.Rows[i][2] = txtDescripcion.Text;
                        dt.Rows[i][3] = Convert.ToDouble(txtPrecio.Text);
                        dt.Rows[i][4] = "../Imagenes/simple.jpg";
                        dt.Rows[i][5] = 2;//modificar para el xml
                    }
                }
                Session["MantenedorTipoHabitacion"] = dt;
            }
            else
            {
                //agrega nueva fila
                DataRow r = dt.NewRow();
                r["IDTIPOHABITACION"] = 0;
                r["NOMBRETIPOHAB"] = txtNombre.Text;
                r["DESCRIPCION"] = txtDescripcion.Text;
                r["PRECIO"] = Convert.ToDouble(txtPrecio.Text);
                r["IMAGEN"] = "../Imagenes/simple.jpg";
                r["TIPOEDICION"] = 1;
                dt.Rows.Add(r);
            }
            limpiarControles();
            CargarGridView();
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable datos = (DataTable)Session["MantenedorTipoHabitacion"];
                int i = negTipoHabitacion.Instancia.RegistrarTipoHabitacionXML(datos);
                if (i > 0)
                {
                    lblMensaje.Text = "Se Actualizo satisfactoriamente";
                    CrearTabla();
                    CargarGridView();
                }
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.ToString();
            }
            /*if (txtNombre.Text.Trim() == "") { txtNombre.Focus(); return; }
            if (txtDescripcion.Text.Trim() == "") { txtDescripcion.Focus(); return; }
            if (txtPrecio.Text.Trim() == "") { txtPrecio.Focus(); return; }
            entTipoHabitacion tipoH = new entTipoHabitacion();
            tipoH.NombreTipoHab = txtNombre.Text;
            tipoH.Precio = Convert.ToDouble(txtPrecio.Text);
            tipoH.Descripcion = txtDescripcion.Text;
            tipoH.Imagen = "simple.jpg";
            bool resultado = negTipoHabitacion.Instancia.RegistrarTipoHabitacion(tipoH);

            if (resultado)
            {
                Response.Write("<script>alert('Se inserto correctamente')</script>");
            }
            else
            {
                Response.Write("<script>alert('No se inserto correctamente')</script>");
            }
            limpiarControles();
            CargarGridView();*/
        }
        #endregion

        #region gridview
        protected void gvDatos_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow id = gvDatos.SelectedRow;
            try
            {
                lblID.Text = id.Cells[0].Text;
                txtNombre.Text = id.Cells[1].Text;
                txtDescripcion.Text = id.Cells[2].Text;
                txtPrecio.Text = id.Cells[3].Text;
                //el password no se trae en el procedimiento almacenado
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.ToString();
            }
        }
        protected void gvDatos_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            try
            {
                DataTable dt = (DataTable)Session["MantenedorTipoHabitacion"];
                int x = int.Parse(gvDatos.Rows[e.RowIndex].Cells[0].Text);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (Convert.ToInt16(dt.Rows[i][0].ToString()) == x)
                    {
                        dt.Rows[i][5] = 3;
                    }
                }
                Session["MantenedorTipoHabitacion"] = dt;
                CargarGridView();
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.ToString();
            }
        }
        #endregion
    }
}